using RAG.Application.Commands;
using RAG.Application.Dtos;

namespace RAG.Application.Interfaces;

/// <summary>
/// 权限服务接口
/// </summary>
public interface IAppPermissionService
{
    /// <summary>
    /// 获取当前用户权限
    /// </summary>
    Task<ApiResult> GetCurrentUserPermissionsAsync();

    /// <summary>
    /// 获取权限列表（分页）
    /// </summary>
    Task<ApiResult> GetPermissionsAsync(int page, int size, string? search = null);

    /// <summary>
    /// 根据ID获取权限详情
    /// </summary>
    Task<ApiResult> GetPermissionByIdAsync(Guid permissionId);

    /// <summary>
    /// 创建权限
    /// </summary>
    Task<ApiResult> CreatePermissionAsync(CreatePermissionDto dto);

    /// <summary>
    /// 更新权限
    /// </summary>
    Task<ApiResult> UpdatePermissionAsync(Guid permissionId, UpdatePermissionDto dto);

    /// <summary>
    /// 删除权限
    /// </summary>
    Task<ApiResult> DeletePermissionAsync(Guid permissionId);

    /// <summary>
    /// 启用权限
    /// </summary>
    Task<ApiResult> EnablePermissionAsync(Guid permissionId);

    /// <summary>
    /// 禁用权限
    /// </summary>
    Task<ApiResult> DisablePermissionAsync(Guid permissionId);
} 